﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Toggl.PhoneClient.Domain;

namespace Toggl.PhoneClient.Services
{
    public interface IRemoteService
    {
        void Auth(string email, string password, Action<User,Exception> callback);
        void GetTasks(Action<List<Task>, Exception> callback);
        void GetTasks(DateTime? from, DateTime? to, Action<List<Task>, Exception> callback);
        void GetProjects(Action<List<Project>, Exception> callback);
        void GetWorkspaces(Action<List<Workspace>, Exception> callback);
        void GetClients(Action<List<Client>, Exception> callback);
        void GetTags(Action<List<Tag>,Exception> callback);
        void GetPlannedTasks(Action<List<PlannedTask>, Exception> callback);

        void CreateTask(Task task, Action<Task,Exception> callback);
        void UpdateTask(Task task, Action<Task, Exception> callback);
        void DeleteTask(int taskId, Action<Task, Exception> callback);
        void CreateProject(Project project, Action<Project, Exception> callback);
        void UpdateProject(Project project, Action<Project, Exception> callback);

    }
}
